adjoint methods